其他

17岁少年开发出无人驾驶软件,也许会让大公司们「虎躯一震」| 潮科技

2017-03-13 宇多田 36氪


这是36氪推出的晨间栏目「潮科技」。我们将筛选国内外科技公司的最新技术、潜力公司的酷产品、在实验室茁壮成长的新概念展现给大家。潮科技,又潮又有趣。


这位少年研发的无人驾驶软件车能够从以前犯过的错误中吸取经验,直到它们能够应对行驶过程中出现的任何一种状况。




文 | 宇多田



最近,无人驾驶圈子一如既往的热闹,但也渐渐出现了一些不寻常的地方。

一名叫Jan Hünermann的德国软件工程师为自己的两辆无人车搞起了路测——一辆上了粉色的漆,另一辆则是绿宝石色。没错,两辆车完全属于Hünermann个人所有。

虽然颜色很“骚包”,但它们的表现却十分出色:

Hünermann在“道路”上设了各种路障来增加驾驶难度,但多亏了大脑神经网络技术给了这两辆车足够的“启发”,它们才得以如无人驾驶界的老手一般顺利避开路障。

时不时地,Hünermann还会堵上一条道路,顺便设置上新路障,然后再心满意足地看着车辆拐个弯,并躲开这些障碍物。

按照AI永无止境的“学习能力”,Hünermann观察车辆的时间越久,车辆就会变得更加智能:

就像多数无人驾驶公司路测的目的一样,这些车能够从以前犯过的错误中吸取经验,直到它们能够应对行驶过程中出现的任何一种状况。

增加路障,封闭道路,越训练才能越聪明,这难道不是训练无人驾驶汽车的基本常识?……

然而,你以为以上情景发生在某个无人驾驶的密闭测试区?或者是某个技术大公司的开发工作室里?

都不是。这就是我们所说的“不寻常”的地方。

第一个“不寻常”指的是Hünermann。他今年只有17岁,是一个“非专业的软件工程师”,这套自动驾驶汽车的运行及测试代码完全是他自己写的……

第二个“不寻常”是指这两辆汽车,在现实中完全不存在。它们仅仅存在于浏览器页面上,甚至连绘制效果也略显粗糙。

实际上,开头描述的只是德国学生Hünermann亲手开发的一个无人驾驶软件项目——“只在浏览器中存在的自动驾驶汽车”。

你绝对不能小看这个项目,因为它的的确确兑现了Hünermann在软件开发初始阶段时的承诺:

创造一个“可以为汽车提供完全自学环境”的网络应用程序。这个app类似于一个“驱动”,也有点像一套“虚拟环境开发工具”,可以在不断变化的2D环境中让两辆汽车自主进行“道路决策”。

需要注意的是,“不断变化”这个概念实际上取决于用户自己的喜好,他们可以通过点击鼠标或在原始地图的基础上添加新物件(一条新路、一个十字路口甚至是一个路障)来改变汽车的虚拟驾驶环境。

讲到这里,你应该能大体了解这意味着什么:

无人驾驶汽车必须通过路测来提升“智力”(虽然已经讲了千万遍,但还是要再说一次),而路测分为两种——实体路测与虚拟路测。

而后者是一切“没钱没势”的小公司与个体开发者们选择训练汽车软件及获取数据的唯一途径。

因此,你会在最近看到一个越来越明显的趋势——大家都在忙着为无人驾驶汽车软件“贡献”虚拟环境。从科技巨头微软,网上教育机构Udacity,再到知名的视频游戏《侠盗猎车手》,都十分慷慨地开放了自己的无人驾驶虚拟环境及模拟器。

没错,你现在就可以在他们提供的虚拟平台上创建自己的软件测试轨道。

这里需要重点说一下微软。

就在半个月之前,这家最有钱的科技公司之一高调开源了一款专门测试无人车及无人机的虚拟环境软件AirSim,还允许开发人员在里面生成随机环境。当然,它还充当着软件算法的“数据生成器”。

逼真的场景,对阳光、阴影以及烟雾的精确还原,大量路障以及纵横交错的道路系统……财大气粗的微软,从一开始就可以建立起不弱于现实路况的复杂虚拟环境。

连微软自己都是这么说的:

“由于需要耗费大量数资源,很多公司很难自主开发这样的系统。”

的确,选择微软的虚拟环境平台AirSim的确是一个帮助软件“快速成长”的不错选择。

但是,由你自己生成的数据是不是需要与微软“分享”?大家都在这个平台上测试数据,会不会有软件开发水平上的趋同性?这个平台允许你在多大程度上改造里面的虚拟环境?

而现在,我们在年仅17岁的Hünermann身上,似乎看到了另外一种可能性——为何不能在开发一套软件的同时,自己尝试建立一个无人驾驶虚拟测试系统?

17岁少年的无人驾驶“进击之路”

根据Digital Trend的报道,Hünermann关于这个项目的想法其实早在几年前就已经形成了,当时他还只是一个高二学生。

与其他任何一个科技爱好者一样,他对Google DeepMind连续不断的人工智能研发成果感到非常好奇。

譬如,这个顶尖AI开发团队如何通过将“强化学习”(AI的一种类型,通过累计法来实现特定目标)与深层学习神经网络整合在一起,进而开发出一款能玩雅达利游戏机的机器人。

有意思的是,不同于视频游戏中那些扮演非玩家角色的智能体,这些机器人完全能够在没有人准确告知它们怎样操作的情况下自己来玩这个游戏。

那个时候,Hünermann还经常为一些课外计算机活动设计iOS软件与相关网站,有了一定的技术积累。因此,虽然资源非常有限,但他却决定效仿Google——用人工智能做出些成果来。

在保持原有设计爱好的基础上,他下载并阅读了大量DeepMind发表的AI论文,并决定尝试为自己的项目写一些独一无二的代码。显然,这不是一个很轻松的工作。

但Hünermann在接受记者采访时,却并不这样认为:

 “我真的对这一领域非常感兴趣,我想要了解它,进一步挖掘出有意思的东西。而我认为,要深入研究这一领域,需要一个可靠的应用场景。而创建自动驾驶汽车项目就是可行的方法之一。我并没有自己的车,但我却可以在浏览器上开车。”

首先,Hünermann需要先设计好这两辆虚拟汽车。

根据他的描述,这两辆虚拟汽车的车身配有多达19个远程感应器,能够从汽车不同方向发射信号。

简单来说,你可以把这些感应器想象成手电筒光束。每一条光束一开始都亮度十足,但距离车身越远,光束发出的光也就越微弱。

此外,当汽车逐渐靠近某一障碍物时,光束就越短,感应器接受的超声波信号就越强。

这与停车感应器(倒车雷达)的原理大致相同——你越靠近某一处,感应器发出的哔哔声就越急促。

因此,当Hünermann最终把汽车的驾驶速度与某一时刻汽车采取的“相关行动”整合在一起时,这些聪明的汽车就能够提供158种维度的信息。

而接下来要做的才是重点:利用深度学习技术来训练它们。

这些采集到的数据随后会被输入到一个多层神经网络中。汽车驾驶里程与碰撞的次数越多,那些连接到网络不同节点的“信息”被调整及训练的频率就会越高。

如此一来,这些汽车就能逐渐“明白”以后碰到这种情况应该怎么做。而最终的结果便是——与人类的学习经历一样,汽车接受训练的时间越长,它们的技巧也就变得更加娴熟。

当然,它们并不完美。

尤其是这些汽车在遇到空隙时,总是“自信满满”地以为能穿过去,但每次都以失败告终。因为车头的感应器只能识别前方是宽敞的大路,却没有考虑到车身的宽度。

但是,你也不能否认这两辆“民间无人驾驶汽车”的诞生俨然不易,而且正在变得越来越聪明。

其实我们想强调的重点在于,是否在掌握了AI学习架构之后,普通程序员也能做一个这样的训练驱动器。

 “有一点我想要补充的是,只有让汽车变得更智能,它们才能意识到自己被卡住了,然后再倒车并换一条路线。这个虚拟驱动器本身有很多不足,场景也并非很真实。但亲手为其增加车流真的非常有趣,或许给加上一些曲折的小路也不错。现在,我的想法是让虚拟驾驶环境一步一步地还原现实世界。”

目前,虽然由Hünermann创造的驾驶虚拟环境并不复杂,也绝非专业,但却允许我们在里面无限度地为场景添加各种物件。

想象一下在你上班的高速路中间突然出现了另外一条实实在在的驾驶车道是怎样的一幅情景,那么你就能体会到Hünermann的虚拟汽车长期以来都经历了什么。

现在,如果你想要更加深入了解这名17岁学生的项目,就去代码托管平台GitHub上翻一翻吧。在这个网站上,Hünermann已经完成了样品程序的代码。你甚至能够在上面查阅整个JavaScript图书馆。

最后想说的是,鉴于现实中的那些实体无人车都是基于Hünermann使用的同一种神经网络系统进行工作的,那就证明,Hünermann的这一成果完全能够帮助我们以更加简明的形式接触并尝试开发自动驾驶技术。

是的,这绝对不是在开玩笑。


点击蓝字,查看更多潮科技:


“众人皆堵我独飞”,时隔半年,「飞行出租车」终于露了真面目 


深圳推出「智能行人过街系统」,想让你闯不了红灯


将“眼睛”移到头顶,谷歌做了一顶「可拍照的帽子」


长按识别图片二维码▲,或点击“阅读原文”▼

订阅「开氪」

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存